﻿#define _CRT_SECURE_NO_WARNINGS 1
#pragma warning(disable:6031)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
int main()
{

    //int arr[10],brr[10];
    //int i, j, temp;
    //int len = sizeof(arr) / sizeof(arr[0]);//总个数
    //int lun = len - 1;//轮数
    //printf("请输入10个整数：");
    //for (i = 0; i < len; i++)
    //{
    //    scanf("%d", &arr[i]);
    //    brr[i] = i + 1;
    //}
    //printf("从小到大排序后:");
    ////轮数
    //for (i = 0; i < lun; i++)
    //{
    //    //每轮的次数 总个数-轮数-1
    //    for (j = 0; j < len - i - 1; j++)
    //    {
    //        //交换
    //        if (arr[j] > arr[j + 1])
    //        {
    //            temp = arr[j];
    //            arr[j] = arr[j + 1];
    //            arr[j + 1] = temp;
    //        }
    //    }
    //}
    //for (j = 0; j < len; j++)
    //{
    //    printf("%d ", arr[j]);
    //    printf("\n");
    //    printf("%d ", brr[j]);

    //}
 /*   int a[2][3] = { {3,9,-7},{3,6,9} };
    printf("%p\n", &a);
    printf("%p\n",&a[0]+1);
    printf("%p", &a[0] + 1);
    printf("%d", *(a[1]));*/
    //定义一组数组存储邮箱
   /*  char email[30];
   printf("请输入你的邮箱：");
    scanf("%s",email);
    printf("%s\n",email);*/
    /*char email[30];
    printf("请输入你的邮箱：");
    gets(email);
    puts(email);*/

    //定义二维数组存储名字
   /* char str[5][30];
    for (int i = 0; i < 5; i++)
    {
        scanf("%s", str[i]);
    }
    for (int i = 0; i < 5; i++)
    {
        printf("%s\n", str[i]);
    }*/
    /*需求：
        设计一个抽奖程序

        思路：
        1、先将所有的用户姓名存储到二维数组里面去
        2、生成一个随机数
        3、通过随机数做下标就可以访问到对应的字符串。*/
        /*char str[10][30];
        srand((unsigned int)time(NULL));
        int res = rand() % 10;
        for (int i = 0; i < 10; i++)
        {
            scanf("%s", str[i]);
        }
        printf("中奖的人是：");
        printf("%s",str[res]);*/

        // strlen size_t strlen( char *str );
        //输入邮箱，统计邮箱的长度
        /*char email[30];
        printf("请输入你的邮箱：");
        scanf("%s", email);
        int res = strlen(email);
        printf("%d",res);
        return 0;*/

        /*char email[30];
        printf("请输入你的邮箱：");
        scanf("%s", email);
        int count = 0;
        int i = 0;
        while (1)
        {
            if (email[i] != '\0')
            {
                count++;
                i++;
            }
            else
            {
                break;
            }
        }
        printf("%d",count);*/

        //strcat  char *strcat( char *str1, const char *str2 );
        //练习：
        //定义两个字符串a, b一个用来存储区号，一个用来存储电话号码，输入东莞对应的区号和座机号码，
        //再定义一个字符串c，将拼接后的总的电话号码放入到数组中。
        //char a[30]; 
        //char b[30]; 
        //char c[30];
        //printf("请输入东莞的区号：");//0769
        //scanf("%s",a); 
        //printf("请输入手机号码：");
        //scanf("%s",b);
        ////strcat(a, b);
        ////复制个空字符串给c作为缓冲
        //strcpy(c, "");
        //strcat(c, a);
        //strcat(c, b);
        ////printf("%s\n", a);
        //printf("%s", c);


         //strcmp char *strcpy( char *to, const char *from );
        //设计一个登录程序  账号和密码
        /*char id[30], password[30];
        printf("请输入你的账号：");
        scanf("%s", &id);
        printf("请输入你的密码：");
        scanf("%s", &password);
        unsigned int res1 = strcmp("whl", id);
        unsigned int res2 = strcmp("123456", password);
        if (res1 == 0 && res2 ==0)
        {
            printf("输入正确");
        }
        else
        {
            printf("输入错误");
        }*/


        //strstr    char *strstr( const char *str1, const char *str2 );
        /*char a[30] = { "wenlongxin" };
        char b[30];
        printf("输入一串字符：");
        scanf("%s", b);
        char* p = strstr(a,b);
        if (p == NULL)
        {
            printf("找不到");
        }
        else
        {
            printf("找到了，地址是：%p", p);
        }*/

        //strchr char *strchr( const char *str, int ch );
        /*char a[30] = { "wenlongxin" };
        char ch;
        printf("输入一个字符：");
        scanf("%c",&ch);
        char* p = strchr(a, ch);
        if (p == NULL)
        {
            printf("找不到");
        }
        else
        {
            printf("找到了，地址是：%p", p);
        }*/

        //memset  void *memset( void *buffer, int ch, size_t count );
       /* int a[5] = { 9,3,8,4,100 };
        memset(&a[1], '\0', 3 * 4);
        int i;
        for (i = 0; i < 5; i++)
        {
            printf("%d ", a[i]);
        }*/
        //1、判断字符串是不是回文  char s[] = "12344321";
        //思路：前面一半和后面一半对比
        /*char s[] = "12344321";
        int n = strlen(s);
        int left = 0;
        int right = n - 1;
        int flag = 1;
        while (left < right)
        {
            if (s[left] != s[right])
            {
                flag = 0;
                break;
            }
            else
            {
                left++;
                right--;
            }
        }
        if (flag == 1)
        {
            printf("%s是回文数字",s);
        }
        else
        {
            printf("%s不是回文数字",s);

        }*/
        //2、设计一个 C 语言程序，用于将一个字符串反转，要求不使用额外的数组或字符串空间。
        //比如：输入字符串 "yx234nu"  翻转后为 "un432xy"
      /*  char str[30];

        printf("请输入字符串:\n");
        scanf("%s",str);
        printf("原始字符串:");
        printf("%s", str);
        int n = strlen(str);
        for (int i = 0; i < (n / 2); i++)
        {
            char temp = str[i];
            str[i] = str[n - i - 1];
            str[n - i - 1] = temp;
        }
        printf("\n翻转后：");
        printf("%s", str);*/
        //3、设计一个小程序，帮助我们解决今天的午餐去哪里吃的问题。
        //比如：输入“10元快餐” “兰州拉面” “烧鹅饭” “智能餐厅” “美团外卖”
        //随机抽取一个地方
        /*char str[10][30];
        printf("请输入要吃什么：\n");
        for (int i = 0; i < 10; i++)
        {
            scanf("%s", str[i]);
        }
        srand((unsigned int)time(NULL));
        int res = rand() % 10;
        printf("今天的午餐去吃%s",str[res]);*/
        //4、设计选择题, 存储题目、选项、答案数据，并显示该题目让用户进行答题，如果答对显示“回答正确”，答错显示“回答错误”。
        //示例：
        //题目, 例如：“床前明月光的作者是谁？”
        //选项，例如：“A、白居易”  “B、李白”  “C、李商隐”  “D、辛弃疾”
        //答案，例如：B
       /* char input;
        char str1[50];
        char str2[4][30];
        char answer = 'B';
        printf("请答题：\n");
        scanf("%s",str1);
        printf("请选择下列选项：\n");
        for (int i = 0; i < 4; i++)
        {
            scanf("%s", str2[i]);

        }
        printf("\n");
        printf("请输入你的选择：");
        scanf(" %c", &input);
        if (input == answer)
        {
            printf("回答正确");
        }
        else
        {
            printf("回答错误");
        }*/





        //5、下列程序的功能是：输入字符串提取字符串中首个数字字串，并转为对应的数字；
        //例如：输入asd123jk456, hg789ck    输出整数：123, 如果没有数字则输出0；
     /*   char str[30];
        scanf("%s",str);
       
        while (1)
        {
            char ch = getchar();
            if ('1' <= ch && ch <= '9')
            {
                putchar(ch);
            }
        }*/
        ////6、编写程序需求如下：
        //有一个指令包, 指令包里有10个字符串指令
        //用户再输入一个字符串指令,
        //判断用户输入的字符串指令是否在指令包中,
        //如果在指令包中打印yes, 否则输出no:
        int i;
        char commands[10][30] = { "qwe","qrt","qty","qyu","qio","qop","qas","qsd","qgh","qjk" };

        char userCommand[30];
        int found = 0;

        printf("请输入一个字符串指令: ");
        scanf(" %s", userCommand);
       


        for (i = 0; i < 10; i++)
        {
            if (strcmp(userCommand ,commands[i]) == 0)
            {
                found = 1;
                break;
            }

        }

        // 根据查找结果打印信息  
        if (found)
        {
            printf("yes\n");
        }
        else
        {
            printf("no\n");
        }
       
 }